package com.qingzhuge.scheduler.dto.respone;

import com.qingzhuge.dto.response.BaseResponsePkLongDto;
import com.qingzhuge.scheduler.enums.JobType;
import com.qingzhuge.scheduler.enums.TimeType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import org.quartz.Trigger;

import java.util.Date;

/**
 * @author : zero.xiao
 * @description :
 * @date :2019-05-21 15:43
 * @modified :
 */
@ApiModel("任务调度信息")
@Setter
@Getter
public class SysTaskScheduledResponseDto extends BaseResponsePkLongDto {
    @ApiModelProperty("任务名称")
    private String name;
    @ApiModelProperty("开始执行时间，")
    private Date startTime;
    @ApiModelProperty("结束执行时间，null永远执行")
    private Date endTime;
    @ApiModelProperty("执行次数,会覆盖结束时间")
    private Integer count;
    @ApiModelProperty("间隔执行时间类型，为空时执行1次，基于执行次数，count < 1 or null 无效")
    private TimeType timeType;
    @ApiModelProperty("间隔执行时间,默认5")
    private Integer time;
    @ApiModelProperty("作业名称")
    private String taskName;
    @ApiModelProperty("任务分组")
    private String taskGroup;
    @ApiModelProperty("任务状态：\n " +
            "None：Trigger已经完成，且不会在执行，或者找不到该触发器，或者Trigger已经被删除\n" +
            "NORMAL:正常状态\n" +
            "PAUSED：暂停状态\n" +
            "COMPLETE：触发器完成，但是任务可能还正在执行中\n" +
            "BLOCKED：线程阻塞状态\n" +
            "ERROR：出现错误")
    private Trigger.TriggerState status;
    @ApiModelProperty("任务运行时间表达式:在线生成地址->http://cron.qqe2.com/")
    private String taskCron;
    @ApiModelProperty("执行时间")
    private Date fireTime;
    @ApiModelProperty("上次执行时间")
    private Date previousFireTime;
    @ApiModelProperty("下次执行时间")
    private Date nextFireTime;
    @ApiModelProperty("任务描述")
    private String taskDesc;
    @ApiModelProperty("任务类型")
    private JobType jobType;
    @ApiModelProperty("作业id")
    private Long taskJobId;
}
